package com.singfan.common.db.provider;

import com.singfan.common.db.config.Database;

import java.sql.Connection;
import java.util.List;

/**
 * 数据库连接池提供类
 * Author: HanSongHe
 * Date: 15-7-1 上午11:35
 */
public abstract class ConnectionPoolProvider {

    /**
     * 初始化数据库连接池
     * @param databaseList 数据库信息列表
     */
    public abstract void init(List<Database> databaseList);

    /**
     * 根据数据库id来获取数据库连接
     * @param databaseId 数据库id
     * @return 数据库连接
     */
    public abstract Connection getConnection(String databaseId);

    /**
     * 根据数据库id来判断数据库连接是否可读
     * @param databaseId 数据库id
     * @return 数据库连接是否可读
     */
    public abstract boolean read(String databaseId);

    /**
     * 根据数据库id来判断数据库连接是否可写
     * @param databaseId 数据库id
     * @return 数据库连接是否可写
     */
    public abstract boolean write(String databaseId);
}
